package com.indexingsystem.system.service;

import java.util.List;

import com.indexingsystem.boss.Vo.StatusList;
import com.indexingsystem.boss.Vo.SysConfigVo;
import com.indexingsystem.boss.common.PagedResult;
import com.indexingsystem.boss.entity.SysConfig;

public interface ISysConfigService {
	
	/**
	 * 根据主键id删除基础配置.
	 * 
	 * @param sysConfigId
	 * @return
	 */
	int deleteByPrimaryKey(String sysConfigId) throws Exception;

	/**
	 * 批量删除系统配置.
	 * 
	 * @param sysConfigIdList
	 * @return
	 */
	int deleteSysConfigByIdBatch(List<String> sysConfigIdList) throws Exception;

	/**
	 * 根据条件新增基础配置.
	 * 
	 * @param record
	 * @return
	 */
	int insertSelective(SysConfig record) throws Exception;

	/**
	 * 分页获取基础配置列表.
	 * 
	 * @return
	 */
	PagedResult<SysConfig> selectSysConfigList(String queryCriteria,Integer pageNo, Integer pageSize);

	/**
	 * 通过主键查询基础配置.
	 * 
	 * @param sysConfigId
	 * @return
	 */
	SysConfig selectByPrimaryKey(String sysConfigId);

	/**
	 * 根据条件修改基础配置.
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKeySelective(SysConfig record) throws Exception;

	/**
	 * 通过可以获取基础信息列表.
	 * 
	 * @param key
	 * @return
	 */
	List<SysConfig> getSysConfigByKey(String key);

	/**
	 * 通过系统参数键和参数值查询是否已存在重复.
	 * 
	 * @param sysConfig
	 * @return
	 */
	SysConfig getSysConfigByKeyOrValue(SysConfigVo sysConfig);
	
	/**
	 * 通过系统参数键和名称查询是否已存在重复.
	 * 
	 * @param sysConfig
	 * @return
	 */
	SysConfig getSysConfigByKeyOrName(SysConfigVo sysConfig);
	
	
	/**
	 * 通过系统参数值和参数名称查询是否已存在重复.
	 * @param sysVonfig
	 * @return
	 */
	SysConfig getSysConfigByValueOrName(SysConfigVo sysConfig);

	/**
	 * 获取系统基础配置列表总数量.
	 * 
	 * @return
	 */
	Integer getSysConfigListCount(String queryCriteria);

	/**
	 * 批量启用，禁用权限.
	 * 
	 * @param operationMap
	 * @return
	 */
	int batchUpdateSysConfigWithList(List<StatusList> list);
	
}